/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  						 carryover_hero.h

	$Header: /heroes4/carryover_hero.h $

	$NoKeywords: $

 ************************************************************************/

#if !defined( CARRYOVER_HERO_H_INCLUDED )
#define CARRYOVER_HERO_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <string>

#include "carryover_data.h"
#include "hero_events.h"
#include "patrol_type.h"
#include "player_color.h"
#include "stationary_adventure_object.h"

// --------------------------------------------------------------------------
// t_carryover_hero class
// --------------------------------------------------------------------------

class t_carryover_hero : public t_stationary_adventure_object
{
public:
	// Constructor
	explicit t_carryover_hero( std::string const & model_name );

	// Member functions
	virtual void	place(
						t_adventure_map &		map,
						t_adv_map_point const &	point ); 
	virtual bool	preplacement( t_adventure_map & map, int pass );
	virtual bool	read_from_map(
						std::streambuf &		stream,
						t_progress_handler *	progress_handler );

private:
	// Data members
	t_hero_built_in_event_list		m_built_in_events;
	t_hero_carryover_data_ptr		m_carryover_data_ptr;
	t_hero_continuous_event_list	m_continuous_events;
	std::string						m_hero_name;
	t_player_color					m_owner_color;
	int								m_patrol_radius;
	t_patrol_type					m_patrol_type;
	t_hero_timed_event_list			m_timed_events;
	t_hero_triggerable_event_list	m_triggerable_events;
};

#endif // !defined( CARRYOVER_HERO_H_INCLUDED )
